﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AcadPos.Entity;
using AcadPosApp.Utilidades;

namespace AcadPosApp.ControlarMatricula
{
    public partial class SituacaoMatricula : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["idMatriculaSituacao"] != null)
                {
                    carregaSituacoesMatricula();
                }
                else
                    Response.Redirect("MatriculaAluno.aspx");
            }
        }

        private void carregaSituacoesMatricula()
        {
            Matricula matricula = new Matricula();
            matricula.IdMatricula = Convert.ToInt32(Session["idMatriculaSituacao"].ToString());
            gvwSituacaoMatricula.DataSource = ControlClass.CNMatricula.listaSituacaoMatricula(matricula);
            gvwSituacaoMatricula.DataBind();
        }

        protected void btnIncluir_Click(object sender, EventArgs e)
        {
            pnlCadastro.Visible = true;
            limpaCamposCadastro();
        }

        private void limpaCamposCadastro()
        {
            txtMotivo.Text = string.Empty;
            txtProtocolo.Text = string.Empty;
        }

        protected void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                Matricula matricula = new Matricula();
                matricula.Situacao = ddlSituacao.SelectedValue;
                matricula.ProtocoloSituacao = txtProtocolo.Text;
                matricula.MotivoSituacao = txtMotivo.Text;
                matricula.IdMatricula = Convert.ToInt32(Session["idMatriculaSituacao"].ToString());
                if (ControlClass.CNMatricula.inserirSituacaoMatricula(matricula))
                {
                    //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoInserir, "")), true);
                    carregaSituacoesMatricula();
                    limpaCamposCadastro();
                    pnlCadastro.Visible = false;

                    MatriculaSessao matriculaSessao = (MatriculaSessao)Session["matriculaSessao"];
                    matriculaSessao.Acao = "Inserir";
                    Session["matriculaSessao"] = matriculaSessao;
                    Session.Remove("idMatriculaSituacao");
                    Session["saidaPagina"] = "ST";
                    Response.Redirect("MatriculaAluno.aspx");
                }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Não foi possível realizar a operação. Por favor, tente novamente.")), true);
                }
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Erro, ex.Message.ToString())), true);
            }
        }

        protected void btnCancelarCadastro_Click(object sender, EventArgs e)
        {
            limpaCamposCadastro();
            pnlCadastro.Visible = false;
        }

        protected void gvwSituacaoMatricula_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvwSituacaoMatricula.PageIndex = e.NewPageIndex;
            carregaSituacoesMatricula();
        }

        protected void gvwSituacaoMatricula_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {

                Matricula matricula = new Matricula();
                int index = int.Parse((String)e.CommandArgument);
                matricula.IdSituacaoMatricula = Convert.ToInt32(gvwSituacaoMatricula.DataKeys[index]["ID_SITUACAO_MATRICULA"].ToString());

                if (e.CommandName == "Excluir")
                {
                    pnlCadastro.Visible = false;
                    if (ControlClass.CNMatricula.excluirSituacaoMatricula(matricula))
                    {
                        //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.SucessoExcluir, "")), true);
                        pnlCadastro.Visible = false;
                        pnlPesquisa.Enabled = true;
                        carregaSituacoesMatricula();
                        MatriculaSessao matriculaSessao = (MatriculaSessao)Session["matriculaSessao"];
                        matriculaSessao.Acao = "Excluir";
                        Session["matriculaSessao"] = matriculaSessao;                        
                        Session.Remove("idMatriculaSituacao");
                        Session["saidaPagina"] = "ST";
                        Response.Redirect("MatriculaAluno.aspx");
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Nada, "Não foi possível realizar a operação. Por favor, tente novamente.")), true);
                    }
                }
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", string.Format("alert('{0}');", Alertas.obterMsg((int)EnumAcadPos.Mensagem.Erro, ex.Message.ToString())), true);
                pnlCadastro.Visible = false;
                pnlPesquisa.Enabled = true;
            }
        }

        protected void gvwSituacaoMatricula_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton l = (ImageButton)e.Row.FindControl("EXCLUIR");
                l.CommandArgument = e.Row.RowIndex.ToString();

                //ImageButton button2 = (ImageButton)e.Row.FindControl("ImgAlterar");
                //button2.CommandArgument = e.Row.RowIndex.ToString();
            }
        }

        protected void gvwSituacaoMatricula_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //foreach (DataControlFieldCell cell in e.Row.Cells)
                //{
                //    // Verificando todas as colunas da linha
                //    foreach (Control control in cell.Controls)
                //    {
                //        //No caso o botão é do tipo Imagem Button
                //        ImageButton button = control as ImageButton;
                //        if (button != null && button.CommandName == "Excluir")
                //        {
                //            // Adicionando a mensagem javascript
                //            button.OnClientClick = "return ShowConfirm('Tem certeza que deseja excluir?', '" + button.ClientID + "');";
                //        }
                //    }
                //}
                e.Row.Cells[0].Visible = false;
            }
            if (e.Row.RowType == DataControlRowType.Header)
            {
                e.Row.Cells[0].Visible = false;
            }
        }

        protected void btnVoltarMatricula_Click(object sender, EventArgs e)
        {
            MatriculaSessao matriculaSessao = (MatriculaSessao)Session["matriculaSessao"];
            //matriculaSessao.Acao = "Excluir";
            Session["matriculaSessao"] = matriculaSessao;
            Session.Remove("idMatriculaSituacao");
            Session["saidaPagina"] = "FC";
            Response.Redirect("MatriculaAluno.aspx");
        }


    }
}